#include <stdio.h>

void InsertSort(int arr[],int n){
	int tmp;
	for(int i=1;i<n;i++){
		tmp=arr[i];
		int s=i;
		for(;s-1>=0 && tmp<arr[s-1];s--){
			arr[s]=arr[s-1];
		}
		arr[s]=tmp;
	}
	return;
}

void swap(int arr[],int i1,int i2){
	int tmp;
	tmp=arr[i2];
	arr[i2]=arr[i1];
	arr[i1]=tmp;
	return;
}
int mid3(int arr[],int left,int right){
	int mid=(left+right)/2;
	if( arr[left] > arr[mid] )
		swap(arr,left,mid);
	if( arr[left] > arr[right] )
		swap(arr,left,right);
	if( arr[mid] > arr[right] )
		swap(arr,mid,right);
	swap(arr,mid,right-1);
	return arr[right-1];
}
void quick_sort(int arr[],int left,int right){
	//if( right-left >  ){
		if( right+1-left < 2 )return;
		int pivot=mid3(arr,left,right);
		int i=left,j=right-1;
		while( 1 ){
			while( arr[++i] < pivot ){}
			while( arr[--j] > pivot ){}
			if( i<j )
				swap(arr,i,j);
			else
				break;
		}
		swap(arr,i,right-1);
		quick_sort(arr,left,i-1);
		quick_sort(arr,i+1,right);
	//}
	//else
	//	InsertSort(arr+left,right+1-left);
	return;
}
void QuickSort(int arr[],int n){
	quick_sort(arr,0,n-1);
	return;
}

int main(void){
	//int a[]={9,3,1,7,8};
	//int n=sizeof(a)/sizeof(int);
	int n;
	scanf("%d",&n);
	int a[n];
	for(int i=0;i<n;i++)scanf("%d",&a[i]);
	QuickSort(a,n);
	//InsertSort(a,n);
	for(int i=0;i<n-1;i++)
		printf("%d ",a[i]);
	printf("%d",a[n-1]);
	return 0;
}
